草庐IT

shell 运算符

全部标签

c# - C# 中的运算符重载

classPoint{privateintm_PointX;privateintm_PointY;publicPoint(intx,inty){m_PointX=x;m_PointY=y;}publicstaticPointoperator+(Pointpoint1,Pointpoint2){PointP=newPoint();P.X=point1.X+point2.X;P.Y=point1.Y+point2.Y;returnP;}}例子:PointP1=newPoint(10,20);PointP2=newPoint(30,40)P1+P2;//operatoroverloading

c# - 从 shell 运行的 ffmpeg 运行正常,但在 .NET 中调用时运行不正常

我正在尝试在C#程序中使用ffmpeg(在Windows上使用Cygwin编译),方法是使用Process类生成一个ffmpeg实例。但是,我遇到了一个没有多大意义的相当奇怪的错误。当我直接从shell(无论是Cygwin的bash、PowerShell、cmd)运行ffmpeg时,ffmpeg可以正确地解码和重新编码文件而不会出现任何问题:PSC:\audio>ffmpeg-i.\sound1.wav-acodeclibvorbis-foggabc.oggffmpegversion1.2Copyright(c)2000-2013theFFmpegdevelopersbuiltonAp

c# - 空合并运算符是否在c#中缓存结果

我知道(myValue??newSomeClass())类似于(myValue==null?newSomeClass():myValue)但出于好奇,当我调用函数时是否有任何性能优势,比如(getResult()??newSomeClass())。getResult()会被执行两次吗?这似乎不直观,因为我只指定了一次方法调用。 最佳答案 好吧,如果您所说的“缓存”是指将其存储在一个临时变量中,那么是的。这个结构:varresult=(getResult()??newSomeClass());可以认为等价于此:var=getResul

c# - 从 .NET Windows 服务调用 Shell32.dll

我有一个.NET4.0库,它使用Shell32和Folder.GetDetailsOf()从WTV文件中获取元数据。我已经成功地将它用于控制台和Windows窗体应用程序,没有任何问题。但由于某种原因,当从.NET4.0Windows服务调用组件时,调用启动Shell类会导致COM错误。库中失败的代码:Shell32.Shellshell=newShell();错误:无法将“System.__ComObject”类型的COM对象转换为接口(interface)类型“Shell32.Shell”。此操作失败,因为IID为“{286E6F1B-7113-4355-9562-96B7E9D6

c# - 位运算练习

我有以下练习:数字n0到n7是以二进制系统表示的字节。任务是每一位都掉到底部,或者如果它遇到另一位,它就会停留在它上面。这是一个视觉示例:我意识到,如果我对从n0到n7的所有数字应用按位或,它始终是n7的正确结果:n7=n0|n1|n2|n3|n4|n5|n6|n7;Console.WriteLine(n7);//n7=236不幸的是,我想不出其余字节n6、n5、n4、n3、n2、n1、n0的正确方法。你有什么想法吗? 最佳答案 我想提出一个不会遍历集合N次的解决方案,我相信我已经找到了一种新颖的分而治之方法:intn0_,n1_,

c# - 什么时候应该在 C# 中定义(显式或隐式)转换运算符?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭2年前。ImprovethisquestionC#的一个鲜为人知的特性是可以创建隐式或显式user-definedtypeconversions.我已经编写C#代码6年了,但我从未使用过它。所以,我担心我可能会错失良机。用户定义的转换的合法、良好用途是什么?您是否有比仅定义自定义方法更好的示例?--事实证明,Microsoft有一些designguidelines关于转化,其中最相关的是:Donotprovideaconversion

c# - 如何使用 GhostScript (gswin32c.exe) shell 命令在默认网络打印机上打印 PDF

我想通过GhostScript在Windows的网络打印机上打印PDF文件。(我不想使用Adob​​eReader)我读过gswin32c.exe可以完成这项工作。我尝试了许多命令,但找不到如何强制gs在我的(Windows默认)网络驱动器上打印PDF的方法。我不需要精确的网络打印机——可以使用默认值。但如果没有这样的选项,我也很乐意传递打印机名称。(我试过使用param-SDevice="\server_IP\printer_name"但这也没有用...)Windowscmd下运行的命令:gswin32c-dPrinted-dBATCH-dNOPAUSE-dNOSAFER-q-dNu

c# - 用 ?? 实例化空对象运算符(operator)

考虑以下典型场景:if(anObject==null){anObject=newAClass();}我想知道使用??进行以下替换的想法是什么?运算符(operator):anObject=anObject??newAClass();我不确定我是否应该使用第二种形式。这似乎是一个很好的速记,但开头的anObject=anObject结构似乎有点代码味道。这是合理的做法,还是我缺少更好的简写方式?或者,“这是三行,克服它!”? 最佳答案 更新:正如O.R.Mapper所指出的,问题在于self分配是否是一种代码气味。这是我书中的6和两个

c# - 使用插值 vs "+"运算符连接字符串的内存使用情况

我看到了使用内插字符串在可读性方面的好处:stringmyString=$"Hello{person.FirstName}{person.LastName}!"通过这种方式完成的串联:stringmyString="Hello"+person.FirstName+""person.LastName+"!";作者thisvideotutorial声称第一个可以更好地利用内存。怎么会? 最佳答案 作者实际上并没有说一个比另一个更好地利用内存。它在抽象中说,一种方法“充分利用了内存”,这本身并没有什么实际意义。但是不管他们怎么说,这两种方

c# - 为什么在测试受约束的泛型类型时直接转换失败但 "as"运算符成功?

``在编译一些使用具有类型约束的泛型的C#代码时,我遇到了一个有趣的好奇心。我写了一个快速测试用例来说明。我在VisualStudio2010中使用.NET4.0。namespaceTestCast{publicclassFruit{}publicclassApple:Fruit{}publicstaticclassTest{publicstaticvoidTestFruit(FruitTypefruit)whereFruitType:Fruit{if(fruitisApple){Appleapple=(Apple)fruit;}}}}转换为Apple失败并出现错误:“无法将类型‘Fr